Qu'est-ce que terraform coalesce ?

"terraform coalesce" est une fonctionnalité introduite dans Terraform v0.14. Elle permet de fusionner plusieurs expressions d'attributs en une seule. Cette fonctionnalité est particulièrement utile lorsque vous avez besoin de vérifier plusieurs attributs et d'en utiliser un seul en fonction de sa disponibilité.

Le coalesce peut être utilisé pour fusionner des expressions d'attributs de différentes ressources ou de différentes variables. Si l'un des attributs est défini, il est retourné sans tenir compte des autres attributs. Le premier attribut défini sera donc retourné.

Voici un exemple simple pour expliquer l'utilisation de "terraform coalesce":

variable "name" {
  default = null
}

variable "default_name" {
  default = "John Doe"
}

resource "aws_instance" "example" {
  # Utilisez "terraform coalesce" pour obtenir la valeur de "name" s'il est défini, sinon utilisez "default_name"
  name = coalesce(var.name, var.default_name)
}

Dans cet exemple, la ressource "aws_instance" aura un attribut "name" qui sera la valeur de "var.name" si elle est définie. Sinon, il utilisera la valeur de "var.default_name".

L'utilisation de "terraform coalesce" permet d'éviter des constructions plus longues et plus complexes avec des blocs conditionnels ou des opérateurs ternaires. Cela rend le code Terraform plus lisible et plus maintenable.

Il convient de noter que "terraform coalesce" ne vérifie que la disponibilité des attributs, et non leur valeur. Ainsi, si un attribut est défini mais a une valeur vide, il sera quand même retourné par "terraform coalesce".

En résumé, "terraform coalesce" est une fonctionnalité pratique pour fusionner plusieurs expressions d'attributs en une seule, en choisissant la première qui est définie. Cela permet de simplifier le code Terraform et de rendre l'écriture de modèles plus efficace.